//package com.yuan.spring.mongo;
//
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.data.mongodb.core.MongoTemplate;
//import org.springframework.data.mongodb.core.query.Criteria;
//import org.springframework.data.mongodb.core.query.Query;
//import org.springframework.stereotype.Service;
//
//import java.util.List;
//import java.util.Map;
//
///**
// * mongoService
// * Created by yeg on 2017/8/18.
// */
//@Service
//public class MongoServiceImpl implements MongoService {
//
//    @Autowired
//    private MongoTemplate mongoTemplate;
//
//    @Override
//    public <T extends BaseMongoEntity> void insert(T t) {
//        mongoTemplate.insert(t);
//    }
//
//    @Override
//    public <T extends BaseMongoEntity> void insert(List<T> list) {
//        mongoTemplate.insertAll(list);
//    }
//
//    @Override
//    public <T extends BaseMongoEntity> List<T> find(Class<T> t) {
//        return mongoTemplate.findAll(t);
//    }
//
//    @Override
//    public <T extends BaseMongoEntity> List<T> find(Class<T> t, MongoParam mongoParam) {
//        Query query = new Query();
//        Map<String, Object> eqMapValue = mongoParam.getThreadEqMap().get();
//        for (String key : eqMapValue.keySet()) {
//            query.addCriteria(Criteria.where(key).is(eqMapValue.get(key)));
//        }
//        Map<String, Object> lteMapValue = mongoParam.getThreadLteMap().get();
//        for (String key : lteMapValue.keySet()) {
//            query.addCriteria(Criteria.where(key).lte(lteMapValue.get(key)));
//        }
//        Map<String, Object> threadGteMap = mongoParam.getThreadGteMap().get();
//        for (String key : threadGteMap.keySet()) {
//            query.addCriteria(Criteria.where(key).gte(threadGteMap.get(key)));
//        }
//
//        Map<String, Object> threadGtMap = mongoParam.getThreadGtMap().get();
//        for (String key : threadGtMap.keySet()) {
//            query.addCriteria(Criteria.where(key).gt(threadGtMap.get(key)));
//        }
//
//        Map<String, Object> threadLtMap = mongoParam.getThreadLtMap().get();
//        for (String key : threadLtMap.keySet()) {
//            query.addCriteria(Criteria.where(key).gt(threadLtMap.get(key)));
//        }
//        return mongoTemplate.find(query, t);
//    }
//}
